ArcGIS Python从0到1!编程入门到提高(基础篇)
ArcGIS为什么学习Python
学习Python原因如下:
1.数据分析、人工智能、机器学习使用语言是Python
2.Python易于学习,入门快,简练,高效,变量不用预定义,并且随时可以改变类型
3.Python拥有最成熟的程序包资源库之一arcpy,后面直接说ArcGIS python开发直接简称arcpy,arcpy主要模块,如表1-1所示。
表1-1 arcpy主要模块
模块名称 | 功能 |
arcpy.da | 数据访问模块。提供了增、删、査、改等数据记录操作的类和函数。 |
arcpy.mapping | 地图制图模块。提供了操作mxd文档、地图渲染、地图打印输出、地图服务发布等功能。 |
arcpy.na | 网络分析扩展模块。用于访问网络分析地理处理工具。 |
arcpy.sa | 栅格分析模块。用于访问空间分析地理处理工具 |
arcpy.time | 处理时间增量和时区时会用到的类、方法以及属性。 |
4.在ArcGIS中python,界面和代码分离,Python负责写代码,arcgis负责定制界面。
5.在各种开发语言中多年排名第一
6.在ArcGIS中Python是开源的,不用安装其他软件,还内置命令行。
7.Python缺点,不擅长界面。
8.在ArcGIS,Python主要是处理数据,每个工具调用基本都是一行代码,非常简练。不过在ArcMap 10.7中Python版本是2.7,而在ArcGIS Pro 2.5中使用版本3.6.8,ArcGIS Pro 2.6中是python 3.6.10版本。
ArcGIS怎么学习Python
1.看帮助,看每个工具帮助,每个工具箱的工具都有python调用代码,需要搜素工具箱的工具:中文搜索加空格,英文搜素加*,也可以输入文件扩展名。
2.运行工具,就有python代码,在地理处理主菜单→结果,界面右键菜单,如图1-1所示。本人认为主要的问题是开发和解决问题思路,会手工操作,基本就有代码。
图1-1 地理处理结果中获得python代码
3.加入模型中,可以导出python代码,如图1-2所示,但不是导出的脚本,都能用,个别需要修改,主要python2.x不支持汉字变量,还有以下几点。
1)如果需要覆盖数据,可将 arcpy.env.overwriteOutput 属性设置为 True。
2)如果模型使用的图层或表视图不是在原始模型中创建,则必须使用创建要素图层(MakeFeatureLayer)和创建表视图(MakeTableView)等工具在脚本中创建这些图层或表视图。
3)模型的数据元素会直接转换为导出脚本中的变量。避免命名 Python 中不兼容的数据元素(例如 class、global 和 return)。
4)如果模型使用了任何行内变量替换(如 %workspace%、%scratchworkspace%、%n%、%i% 或 %variable name%),则必须使用正确的值来替换这些变量。
5)如果模型使用了迭代器,则迭代逻辑将不会被导出,而必须在 Python 中替换为循环语句。
6)只有列表变量中的第一个值将被导出。
7)如果模型使用了“仅模型”工具(如合并分支、收集值或计算值),则这些工具不会在 Python 中运行。需要实现与这些工具所提供的等效的 Python 功能。例如,需要使用 if/else 逻辑在脚本中执行分支。
8)如果模型包括子模型,则不会导出这些子模型中的内容。而是必须引用工具箱并需要在脚本内调用模型工具。
图1-2 模型导出python脚本
4.有一定python语言基础,严格区分大小写,靠:缩进实现语法,汉字(在Python3中,可以是汉字)不能做变量(也不能数字开头)。
ArcGIS执行Python几种方式和注意事项
1.Python窗口
2.独立运行脚本
ArcGIS 10.X中使用python2.7,默认是ASCII码,务必修改为编码utf8(是针对Unicode的一种可变长度字符编码) ,方法是编写sitecustomize.py,内容如下
#coding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
拷贝到C:\Python27\ArcGIS10.X\Lib\site-packages\,10.X是ArcGIS的版本,如果是ArcGIS 10.7,就是10.7。
函数的多参数调用方法
以“要素转点”,“要素转线”等工具为列,有以下方式:
1.arcpy.FeatureToPoint_management("jfb", "parcels_center", "CENTROID") #每个参数都填值
2.arcpy.FeatureToPoint_management("jfb", "parcels_center") #可选参数不填
3.arcpy.FeatureToPoint_management("jfb", "parcels_center", point_location="CENTROID") #可选参数填写参数名
4.arcpy.FeatureToLine_management(in_features=“JFB”,out_feature_class=“C:/Users/dell/Documents/ArcGIS/Default.gdb/JFB_FeatureToLine”,cluster_tolerance=“#”,attributes=“ATTRIBUTES”) #每个参数填写参数名,空值为。
总结:所有的按顺序填写,可选参数,可以填,也可以不填,多个可选把参数名填写上,不需要就不填写,空值使用"#"。
Python 编辑器设置和调式
Python编辑器
1.PyScripter,对应文件:PyScripter-v3.4.2-Setup.exe,在第一章资料下,安装之后他自动获得ArcMap中Python的路径,在主菜单的Tools→Python Path,如图1-3所示。
图1-3 PyScripter中Python Path的路径
由于ArcMap是32位程序,所以使用PyScripter是32位,不是64位的,在主菜单的Tools→Options→File Templates,下加入# -*- coding: UTF-8 -*-,设置变为UTF。如图1-4所示。
图1-4 PyScripter中文件模板的设置
2.pythonw.exe,对应执行文件idle.bat,一般的电脑在
C:\Python27\ArcGIS10.7\Lib\idlelib\idle.bat,10.7是ArcGIS软件的版本,如图1-5所示。
图1-5 pythonw软件的主界面
打开文件,如图1-6所示。
图1-6 pythonw打开文件后界面
3.PyCharm,是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发,如图1-7所示
专业版是收费的,Professional,教育版是免费,社区版是免费的 Free Community,教育版是教学式的,更适合学生。
社区版,就是简化的专业版,除了一些功能没有以外,他是用来解决工作问题的。部分功能没法用(例如:Web开发,Python Web框架,Python的探查,远程开发能力,数据库和SQL支持),安装后就可以使用,在前言二维码中下载。
专业版,功能丰富。对开发者来说十分专业的开发工具。PyCharm中Python路径的设置,如图1-7所示,在File菜单→Settings→Project→Project InterPreter下,分别如图1-8和图1-9所示,选Python路径,ArcMap中Python是2.7,ArcGIS Pro 2.5中是Python3.6.8,如果没有,点击最右边的
图1-7 PyCharm的界面
图1-8 PyCharm中Python中设置
图1-9 PyCharm中工程中设置
图1-10 PyCharm中Python以后路径
图1-11 PyCharm中自己添加Python路径
ArcGIS Python编辑器设置
在主菜单的地理处理→地理处理选择菜单中,如图1-12所示。
图1-12 地理处理选项的位置
在编辑器和调试程序中设置exe或bat(含路径),如图1-13所示。
图1-13 地理处理选项的中Python中编辑器和调试程序设置
文章授权转载:gisoracle
版权归原作者所有
- END -